DAXCTL-RECONFIGURE() | DAXCTL-RECONFIGURE() |
NAME¶
daxctl-reconfigure-device - Reconfigure a dax device into a different mode
SYNOPSIS¶
daxctl reconfigure-device <dax0.0> [<dax1.0>...<daxY.Z>] [<options>]
EXAMPLES¶
.ft C # daxctl reconfigure-device --mode=system-ram --no-online dax0.0 [
{
"chardev":"dax0.0",
"size":16777216000,
"target_node":2,
"mode":"system-ram"
} ] .ft
.ft C # daxctl reconfigure-device --human --mode=devdax --force dax0.0 {
"chardev":"dax0.0",
"size":"15.63 GiB (16.78 GB)",
"target_node":2,
"mode":"devdax" } .ft
.ft C # daxctl reconfigure-device --mode=system-ram --region=0 all [
{
"chardev":"dax0.0",
"size":16777216000,
"target_node":2,
"mode":"system-ram"
},
{
"chardev":"dax0.1",
"size":16777216000,
"target_node":3,
"mode":"system-ram"
} ] .ft
.ft C # daxctl reconfigure-device --mode=system-ram dax0.0 [
{
"chardev":"dax0.0",
"size":16777216000,
"target_node":2,
"mode":"system-ram"
} ] # numactl --cpunodebind=0-1 --membind=2 -- some-service --opt1 --opt2 .ft
.ft C # daxctl reconfigure-device dax0.1 -s 16G reconfigured 1 device # daxctl reconfigure-device dax0.1 -s 0 reconfigured 1 device .ft
DESCRIPTION¶
Reconfigure the operational mode of a dax device. This can be used to convert a regular devdax mode device to the system-ram mode which arranges for the dax range to be hot-plugged into the system as regular memory.
Note
This is a destructive operation. Any data on the dax device will be lost.
Note
Device reconfiguration depends on the dax-bus device model. See daxctl-migrate-device-model(1) for more information. If dax-class is in use (via the dax_pmem_compat driver), the reconfiguration will fail with an error such as the following:
.ft C # daxctl reconfigure-device --mode=system-ram --region=0 all libdaxctl: daxctl_dev_disable: dax3.0: error: device model is dax-class dax3.0: disable failed: Operation not supported error reconfiguring devices: Operation not supported reconfigured 0 devices .ft
daxctl-reconfigure-device nominally expects that it will online new memory blocks as movable, so that kernel data doesn’t make it into this memory. However, there are other potential agents that may be configured to automatically online new hot-plugged memory as it appears. Most notably, these are the /sys/devices/system/memory/auto_online_blocks configuration, or system udev rules. If such an agent races to online memory sections, daxctl checks if the blocks were onlined as movable memory. If this was not the case, and the memory blocks are found to be in a different zone, then a warning is displayed. If it is desired that a different agent control the onlining of memory blocks, and the associated memory zone, then it is recommended to use the --no-online option described below. This will abridge the device reconfiguration operation to just hotplugging the memory, and refrain from then onlining it.
OPTIONS¶
-r, --region=
-s, --size=
The size must be a multiple of the region alignment.
This option is mutually exclusive with -m or --mode.
-a, --align
This option is mutually exclusive with -m or --mode.
-m, --mode=
-N, --no-online
--no-movable
-f, --force
-u, --human
-v, --verbose
COPYRIGHT¶
Copyright © 2016 - 2020, Intel Corporation. License GPLv2: GNU GPL version 2 http://gnu.org/licenses/gpl.html. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.
SEE ALSO¶
daxctl-list(1),daxctl-migrate-device-model[1]